/**
 * 
 */
package fr.gfi.agraf.exception;

/**
 * @author Zakaria
 *
 */
public class AgrafException extends Exception {

	/**
	 * 
	 */
	private static final long serialVersionUID = -5431744817343032613L;

	private final String key;

	private Object[] args;

	/**
	 * Constructeur vide
	 */
	public AgrafException() {
		super();
		this.key = null;
	}

	/**
	 * Constructeur avec message
	 * 
	 * @param message
	 */
	public AgrafException(final String key) {
		// Met le message-code
		this.key = key;
	}

	/**
	 * Constructeur avec message
	 * 
	 * @param message
	 */
	public AgrafException(final String key, final Object... args) {
		// Met le message-code
		this.key = key;
		this.setArgs(args);
	}

	/**
	 * Constructeur avec message et cause
	 * 
	 * @param message
	 * @param cause
	 */
	public AgrafException(final String message, final Throwable cause) {
		super(message, cause);
		this.key = null;
	}

	/**
	 * @return the key
	 */
	public String getKey() {
		return key;
	}

	/**
	 * @return the args
	 */
	public Object[] getArgs() {
		return args;
	}

	/**
	 * @param args
	 *            the args to set
	 */
	public void setArgs(final Object[] args) {
		this.args = args;
	}

}
